From c51551e9e913717c493827d443d1dd14ec40aeae Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Fri, 9 Sep 2005 17:36:39 +0000 Subject: [PATCH] Make vif cleanup use xstransact and use classmethods for setup. Signed-off-by: Christian Limpach --- tools/python/xen/xend/XendDomainInfo.py | 41 ++++++++++++------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index d82490cce9..5cfd6133da 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -457,24 +457,22 @@ class XendDomainInfo: self.uuid, devnum) frontpath = "%s/device/%s/%d" % (self.path, type, devnum) - frontt = xstransact(frontpath) - frontt.write('backend', backpath) - frontt.write('backend-id', "%i" % backdom.id) - frontt.write('handle', "%i" % devnum) - frontt.write('mac', mac) - frontt.commit() - - backt = xstransact(backpath) - backt.write('script', script) - backt.write('domain', self.name) - backt.write('mac', mac) - backt.write('bridge', bridge) + front = { 'backend' : backpath, + 'backend-id' : "%i" % backdom.id, + 'handle' : "%i" % devnum, + 'mac' : mac } + xstransact.Write(frontpath, front) + + back = { 'script' : script, + 'domain' : self.name, + 'mac' : mac, + 'bridge' : bridge, + 'frontend' : frontpath, + 'frontend-id' : "%i" % self.id, + 'handle' : "%i" % devnum } if ipaddr: - backt.write('ip', ' '.join(ipaddr)) - backt.write('frontend', frontpath) - backt.write('frontend-id', "%i" % self.id) - backt.write('handle', "%i" % devnum) - backt.commit() + back['ip'] = ' '.join(ipaddr) + xstransact.Write(backpath, back) return @@ -801,6 +799,10 @@ class XendDomainInfo: for ctrl in self.getDeviceControllers(): if ctrl.isDestroyed(): continue ctrl.destroyController(reboot=reboot) + t = xstransact("%s/device" % self.path) + for d in t.list("vif"): + t.remove(d) + t.commit() ddb = self.db.addChild("/device") for type in ddb.keys(): if type == 'vbd': @@ -811,11 +813,6 @@ class XendDomainInfo: devdb['node'].getData()) typedb[dev].delete() typedb.saveDB(save=True) - if type == 'vif': - typedb = ddb.addChild(type) - for dev in typedb.keys(): - typedb[dev].delete() - typedb.saveDB(save=True) if type == 'vtpm': typedb = ddb.addChild(type) for dev in typedb.keys(): -- 2.30.2